Search technology provides convenient measures for network users to rapidly find information on the Internet. There are primarily three categories of traditional search engines, i.e., robot search engines (Robot), catalog-style search engines (Directory or Catalog), and element search engines (Meta). Traditional search techniques mainly employ keyword matching to conduct the searches. It is often difficult for users to simply use keywords or keyword strings to faithfully express the content that should be searched. Natural language changes over time, region, or field, and the same concept can be expressed using different forms of language expressions; so in searching for the same concept, different users may use different keyword inquiries, resulting in large amounts of unrelated information to be returned to the users.
Some intelligent search engines employ semantic analysis technologies based on knowledge bases, utilizing word segmentation technology, phrase identification, processing synonyms, and other measures to do analysis by targeting user-input search parameters and generate different search schemes (also referred to as search plans). Among them, user input search parameters could be glossaries having specific characteristics, which can be translated words or homonyms. If the user inputs incorrect spelling of search terms, for example if the user mistakenly inputs “Beiking” as “Beijing”, the system platform performs analysis of the erroneous word and automatically recommends a program that utilizes “Beijing” to conduct the search. Moreover, when users enter a search with natural language such as “I want to purchase a cell phone”, what is actually searched for is “cell phone” and thus the search engine can simply retain “cell phone” as the search keywords. The two types of programs described above can be implemented separately in a search engine as a spellcheck module and an overwrite module. Among them, the spellcheck module is configured to change the erroneous input word into the correct input word; the overwrite module is configured to segment the input word, locate the keywords, etc., and rewrite the search terms with ones more suitable for search applications.
In existing technology, a dynamic loading module is usually employed to generate search plans. Specifically, in existing open-source service platforms like Apache servers, C code can be written to produce dynamic expansion modules. The Apache server is a web server that responds to HTTP (Hyper Text Transfer Protocol) requests and is used to respond to the most basic web services. When there is a dynamic loading module in the Apache server, the operating mechanisms of the Apache server must be fully understood or a PHP (Hypertext Preprocessor) module must be written, with the PHP module being configured to carry out repackaging of the Apache interface. The PHP module is dynamically loaded after compilation into the Apache server to provide the services. The aforementioned dynamic loading module employs a common chain of responsibility pattern design, and once the module's task is completed, then it immediately is unloaded from the application.
While the technique is useful for expanding the capabilities of existing server platforms, a number of issues remain. Because the design of the Apache server itself is complex, implementing Apache dynamic modules will directly result in higher cost and greater difficulty in maintenance. Moreover, there is no easy way to coordinate the work among the modules or exercise unified control of the writing of the modules. When new modules are added, previously written modules typically have to be updated to resolve any conflict. When the number of modules is large, the costs of upgrade will be substantial.